POJ 1320 佩尔pell方程

想偷懒去$blog$看看题意,怎么网上的$blog$都这么真实啊,对着错误的式子都能化简出来正确的佩尔$pell$方程的形式。

正确题意:
$1+2+…+n-1=(n+1)+(n+2)+…+m$求出符合此式子的 $10$ 对 $(n,m)$


题解

  • $1+2+…+n-1=(n+1)+(n+2)+…+m$可以推出$2n^2-m^2-m=0$。
  • 化简上式:$(2m+1)^2-8n^2=1$。
  • 令$k=2m+1$,则$k^2-8n^2=1$显然满足佩尔$pell$方程的形式。
  • 算出$(k,n)$,则$m=\frac{k-1}{2}$
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdio>
using namespace std;
int main()
{
int x0=3, y0=1, x1=3, y1=1, x, y;
for(int i=1;i<=10;i++)
{
x=x0*x1+8*y0*y1;
y=y0*x1+x0*y1;
printf("%10d%10d\n", y, (x-1)/2);
x1=x;
y1=y;
}
}